﻿#region 文件信息

/*----------------------------------------------------------------
//
// 文件名称：
// 文件功能描述：
// 设计要求：
//
// 文 件 名：    IVampirewalCoreEventFactory
// 创建者：      杨程
// 创建日期：	    2022/12/31 16:32:05

//----------------------------------------------------------------*/

#endregion

namespace Vampirewal.Core.EventBus;

/// <summary>
/// 事件工厂
/// </summary>
public interface IVampirewalCoreEventFactory
{
    /// <summary>
    /// 工厂名称(方便查找定位)
    /// </summary>
    string FactoryName { get; }

    /// <summary>
    /// 事件工厂完成
    /// </summary>
    /// <param name="context"></param>
    void EventFactoryComplate(EventFactoryContext context);
}

/// <summary>
/// 事件工厂上下文
/// </summary>
public class EventFactoryContext
{
    /// <summary>
    /// 
    /// </summary>
    public EventFactoryContext()
    {
        EventContexts = new List<EventContext>();
        IsEventFactoryComplateSuccess=true;
    }

    /// <summary>
    /// 内部方法上下文
    /// </summary>
    public List<EventContext> EventContexts { get;internal set; }

    /// <summary>
    /// 事件工厂是否全部完成成功
    /// </summary>
    public bool IsEventFactoryComplateSuccess { get;internal set; }
}